package cn.sytton.taffe.web.sys.service;

import cn.sytton.taffe.framework.base.entity.PageParam;
import cn.sytton.taffe.framework.base.service.IBaseService;
import cn.sytton.taffe.web.sys.entity.DeptEntity;
import cn.sytton.taffe.web.sys.entity.DeptUserEntity;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 部门服务层接口
 *
 * @author skyrock
 */
public interface IDeptService extends IBaseService<DeptEntity> {

    /**
     * 查询树形数据
     * @return
     */
    List<DeptEntity> findTree();


    /**
     * 查询多个
     * @param ids id数组
     */
    List<DeptEntity> findByIds(String[] ids);

    /**
     * 查询分页部门成员列表
     * @param pp
     * @return
     */
    PageInfo<DeptUserEntity> findUserListPage(PageParam pp);

    /**
     * 添加用户
     * @param users
     */
    void addUser(DeptUserEntity users);

    /**
     * 移除用户
     * @param users
     */
    void removeUser(DeptUserEntity users);

    /**
     * 更新序号
     * @param entity
     * @return
     */
    void updateUserSeq(DeptUserEntity entity);

    /**
     * 刷新部门成员序号
     * @param deptId
     */
    void refreshUserSeq(String deptId);

    /**
     * 查询用户所在部门
     * @param userId
     * @return
     */
    List<DeptEntity> findByUserId(String userId);
}
